package com.cf.service;

import com.cf.entity.Item;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * @author 59899
 */
public interface ItemService {

    /**
     * 添加基本信息到item表中
     * @param item 实体对象
     * @return 是否添加成功结果
     */
    public int addMessToItem(Item item);

    /**
     * 根据项目名称查询项目对象
     * @param iname 项目名称
     * @return 项目对象
     */
    public Item selectItemByIname(String iname);


    /**
     * 向item表中添加状态值
     * @param iid 项目编号
     * @return 是否添加成功结果
     */
    public int addStatusToItemById(long iid);


    /**
     * 根据iid向项目表中添加项目发起日期和结束日期
     * @param item item对象
     * @return 是否添加成功结果
     */
    public int addTimeToItemById(Item item);

    /**
     * 根据iid删除item信息
     * @param iid 项目编号
     * @return 是否删除成功结果
     */
    public int deleteItemById(long iid);

    /**
     * 分页根据status查询项目
     * @param pageNum 页码
     * @param status 审核状态值
     * @return 项目集合
     */
    public PageInfo<Item> selectAllLikeStatusPage(int pageNum, String status);

    /**
     * 根据项目编号查询对象
     * @param iid 项目编号
     * @return 项目对象
     */
    public Item selectItemByIid(long iid);

    /**
     * 根据项目编号修改审核状态
     * @param map 项目开始终止的时间和状态值
     * @return 是否修改成功结果
     */
    public int updateItemStatusByIid(Map map);

    /**
     * 查询所有项目对象
     * @return 所有项目对象集合
     */
    public List<Item> selectAllItem();

    /**
     * 根据项目状态和分类 分页查询项目
     * @param map 项目状态和分类id
     * @param pageNum 页码
     * @return 项目集合
     */
    public PageInfo<Item> selectItemByStatusAndCid(int pageNum, Map map);

    /**
     * 分页查询所有的项目信息
     * @param pageNum 页码
     * @return 分页查询的结果
     */
    public PageInfo<Item> selectAllItemByPage(int pageNum);

    //逻辑删除item
    public int deleteLuoJi(long iid);

    //通过项目id查找所有回报 并 通过项目id查找项目的内容
    public Item selectRewardAndItem(long iid);

    public List<Item> selectItemUserid(long userid);

    /**
     * 根据iid修改项目的状态值
     * @param iid 项目编号
     * @param notshow 不通过的原因
     * @return 是否修改成功结果
     */
    public int updateStatusByIid(long iid, String notshow);


}
